CryptoBotan
656 subscribers
248 photos
13 videos
1 file
574 links
📰Никаких нашумевших новостей и рекомендаций по рынку.

🌐Только полезная информация для изучения криптомира и технологии блокчейн.

Глубже в Биткоин t.me/CryptoBotan/888

Bitcoin is for everyone - remember that...

Обратная связь: @Russiano55
Download Telegram
Forwarded from 21 идея
Недостатком безопасного хранения любой конфиденциальной информации, такой как приватные ключи, является проблема безопасности данных. Данная статья, подготовленная командой Cypherock, поясняет принципы работы схемы, повышающей безопасность хранения приватных ключей.

Перевод подготовлен биткоинером Tony

Web

Medium
​​
Bitcoin Hivemind - пиринговый протокол Oracle

Для стека биткоина
⬇️⬇️⬇️
Bitcoin Hivemind ( в прошлом Truthcoin) - это opensource, P2P протокол Oracle, предложенный Paul Sztorc и функционирующий как сайдчейн, который дает возможность вносить в блокчейн точные данные, позволяющие владельцам биткоинов спекулировать на рынке прогнозов. Т.е. он позволяет использовать BTC для создания "PM"- “prediction markets” (рынков прогнозирования) и участия в них.

Рынки прогнозирования - это инструменты для принятия решений определяемых рыночными силами, и в то же время устраняющие большую часть шума и неопределенности, которые мешают процессу принятия решений. Они используют прогнозы пользователей для сбора информации о будущих событиях.

Одна из основных концепций PM заключается в том, что если вы не согласны с тем, что показывает рынок, то вы можете воспользоваться этими маржами и сделать ставку против рынка.

Такие
проекты как Augur и Gnosis опираются на понятие “Wisdom of the Crowd” - мудрость толпы - явление, в котором коллективные предсказания группы людей обычно более точны, чем индивидуальные, даже если толпа состоит не из экспертов, а один человек таковым является.

Hivemind является методом краудсорсинга для определения вероятных исходов событий и фокусируется на управлении, решая проблемы с многофакторным принятием решений.

У Hivemind есть пользователи и “employees”. Эти "employees" работают в "филиалах “(каждый филиал напоминает товарооборотную биржу) и голосуют за ”решения“ (результаты выборов или ценовые каналы), которые разрешают ”рынки" (торговые арены, определенные одним или несколькими решениями). Пользователи могут свободно создавать любые решения или рынки, которые им нравятся, несмотря на то, что они экономически конкурируют за ограниченные “слоты принятия решений”.

Hivemind - это сайдчейн, который использует двойную схему токенов с биткойном, функционирующим в качестве пользовательского уровня, и VoteCoins в качестве уровня репутации/“employees”. Ценность биткойна отражает именно то, что он делает — хранилище ценности, — в то время как VoteCoins используются для обозначения репутации пользователя на платформе.

Любой пользователь может создать рынок предсказаний, если он способен заплатить за него BTC.

Все решения добавляются в блокчейн самостоятельно. Авторам впоследствии нужно предоставить стартовый капитал, чтобы обеспечить начальную ликвидность рынка и “сделать рынок"."Авторы получают выгоду от создания рынка и его использования, но также несут ответственность за поддержание рынка и все затраты ресурсов, связанные с его созданием.

Торговая активность должна сходиться к рыночной цене вероятного "состояния" события, но такая точность требует высоколиквидного и активного рынка, что требует времени для развития, особенно когда это PM, построенный на новой технологии, такой как биткойн.

На вопрос чем HiveMind лучше Augur и Gnosis, ответ прост...HiveMind - это P2P-протокол, а значит децентрализован, в отличие от двух других.

WhitePaper
GitHub

#SmartContracts
Forwarded from Ekattā Advaya
На данный момент мы собираем акции по страйку офисов Google в Тель Авиве, Нью-Йорке и Киеве. Более того, многие люди присоединятся к акции исключительно из идеологических соображений, готовим пошаговую стратегию страйков и пишем сторонникам свободного интернета по всему миру. Кто готов присоединиться к информационной поддержке или оказать любую иную помощь по организации и проведению акций пишите в личку @totkaplan. Первая акция будет пробной, но на этом мы не остановимся и продолжим страйк Google и других людоедов до тех пор пока наши требования не будут услышаны. Помимо бана крипто-проектов Google известен множеством нарушений в отношении прав человека на доступ к информации, а также использование личных данных пользователей в корыстных целях.
​​
Протокол конфиденциальности Dandelion

Для стека биткоина
⬇️⬇️⬇️
Начну я с презентации своих старых постов на тему конфиденциальности:

MimbleWimble
CoinJoin, CoinShuffle и Stealth-Addresses
Bulletproofs

Теперь к нашим "Одуванчикам" (англ. Dandelion)...

Биткоин можно разделить на два уровня функционирования:

1) Прикладной уровень: управление транзакциями, блокчейн, майнинг, идентификация узлов в сети по PublicKey

2) Сетевой уровень: обработка связей между узлами через P2P-сеть, идентификация узлов по IP.

Суть в том, что сетевой уровень должен обладать:

а) низкой задержкой. Максимальное время, за которое сообщение достигнет всех узлов сети, должно быть небольшим и ограниченным.

б) анонимность. Невозможность связать сообщения от транзакциях с IP-адресом, который инициировал транзакцию.

Совершая транзакцию с узла, она передается всем связанным узлам, далее другим связанным, и по цепочке. Думаю, всем известный факт...Создается цепочка, которую можно отследить до начального узла. Каждый узел получающий данные о транзакции, становится доступным для запроса. Передача транзакции происходит с экспоненциальными задержками, что позволяет якобы усилить анонимность IP-адреса, но такое решение ее не обеспечивает. Ссылка, где объясняется способ деанонимизации транзакций и вычисление IP.

Летом 2017 года Shaileshh Bojja, Giulia Fant, Pramod Viswanath опубликовали BIP - сетевое решение для Биткойна, которое легко интегрируется в существующие блокчейн-сети. Протокол Dandelion - это решение для улучшения анонимизации на сетевом уровне.

Dandelion повышает конфиденциальность пользователей, отправляя транзакции через фазу анонимности, прежде чем передать их по сети. Dandelion повышает конфиденциальность за счет нарушения симметрии диффузии (форма передачи транзакции), и смешивания транзакций путем пересылки сообщений из разных источников по одному и тому же пути.

Версия "Одуванчик" предложенная в 2017 году имела ряд недостатков и потому в 2018 году вышла новая версия - Dandelion++. Протокол делает попытку деанонимизации - непрактичным.

Работает это все по аналогии с одуванчиком (см. рисунок ниже):

1) Stem Phase (фаза стебля)

Этот этап предназначен для избежания отслеживания транзакций к исходной. Каждый узел отправляет транзакцию одному рандомному (на основе алгоритма) узлу. Этот узел передает сообщение о транзакции другому рандомному узлу и т.д. Информация передается по переплетенным маршрутам. Они могут быть фрагментированы, но распространение ограничено локально. То есть транзакция остается анонимной для сети, кроме тех узлов, которые ее получают. В какой-то точке (каком-то из узлов) сообщение о транзакции транслируется в сеть. Эта какая-то точка определяется протоколом. Выбирается 4 одноранговых узла, позволяющих использовать 2 пути для передачи сообщения о транзакции.

2) Fluff Phase (фаза пуха)

Начало процесса диффузии (передачи транзакций в сеть).

"Распушивание" транзакции происходит либо:
- путем вероятностной игры, когда каждый узел, который получал транзакцию в фазе стебля с 90%-ой вероятностью, передает сообщение дальше
- путем истечения времени задержки, которое определяется индивидуально каждым узлом на фазе стебля.

Важно заметить, что при передаче сообщения о транзакции на стебле, каждый узел проверяет сеть на наличие этой транзакции. Если эта транзакция появилась в сети, узлы передают копию сообщения в сеть.

Протокол не требует сложных вычислений и может быть развернут без каких-либо изменений в базовом протоколе сети Биткойн.

#Privacy
Forwarded from Ekattā Advaya
Апдейт. Запустили страничку с меморандумом, а также подготовили петицию! Прошу максимально распространить информацию.

https://www.google.forklog.com/

http://chng.it/nDNPxGFY - ссылка на петицию

Копирование и распространение информации приветствуется!

#ForkGoogle
В ProgPOW, алгоритме пришедшем на смену Ethash, обнаружили возможный эксплоит
⬇️⬇️⬇️
https://twitter.com/kikx/status/1235281531746185217

О том, что такое ProgPow и для чего он сети Ethereum
⬇️⬇️⬇️
https://tttttt.me/CryptoBotan/841
​​
Технология CoinSwap

Для стека биткоина
⬇️⬇️⬇️
Вы А и хотите отправить транзакцию продавцу Б, но не хотите, чтобы Б мог отследить ваши транзакции. Участник сети В предлагает свои услуги в виде посредника: он получает ваши монеты и отправляет Б другие - несвязанные монеты. Но в такой ситуации отсутствует доверие к каждой из сторон, ну если конечно вы не лучшие кореша, и то не всегда это доверие есть...

CoinSwap - это альтернативный метод обеспечения приватности для биткоина не связанный с хранением конфиденциальности, основанный на идее атомарных свопов. CoinSwap был предложен в 2013 году Грегори Максвеллом.

А может отправить BTC Б через В, где В не может их обмануть. А меняет BTC на то же количество BTC Б (минус комиссия), и делается это при помощи смарт-контрактов биткоина, чтобы исключить возможность мошенничества с любой из сторон. Проблема мошенничества решается при помощи "Hash time lock contracts" (HTLC).

Протокол требует четырех опубликованных транзакций, но транзакции выглядят как обычные 2 из 2 escrow transaction (два escrow платежа, два ecrow выпуска).

CoinSwaps разрушает связь транзакций между отправленными и полученными биткоинами. В блокчейне это выглядит как два набора полностью несвязанных транзакций:

Адрес А ---> эскроу адрес 1 ---> Адрес Б
Адрес Б ---> эскроу адрес 2 ---> Адрес А

Если сравнивать CoinJoin и CoinSwap, то можно определить некоторые существенные недостатки и преимущества.

Операции CoinJoin эффективны при объединении транзакций и могут экономить немного места. CoinSwap требует минимум четырех транзакций, хотя две Coinswap могут эффективно выполняться одновременно.

Набор анонимности CoinJoin равен количеству участников транзакции (или каскада транзакций). Набор анонимности CoinSwap - это все Coinswap происходящие одновременно, даже если пользователи не взаимодействуют друг с другом.

Транзакции CoinSwap выглядят как обычные транзакции 2-2 escrow. Если 2-2 escrow становятся общими, то операции CoinSwap могут быть менее идентифицируемыми, чем крупные операции CoinJoin с кучей выходов одинакового размера, и, следовательно, более устойчивыми к цензуре.

CoinSwaps требуют большого количества взаимодействий между вовлеченными сторонами, что может усложнить проектирование системы и избежать атак типа "отказ в обслуживании". Участники всегда должны иметь доступ к сети. Если интернет будет отключен, то наполовину завершенный CoinSwap может закончиться кражей средств одной из сторон.

Для достижения конфиденциальности, CoinJoin должна иметь много участников. Это усложняет разработку ПО.

CoinSwap эффективно нарушает связь между транзакциями в блокчейне, но это не решает всех проблем приватности и взаимозаменяемости. Посредник в сделке, все же знает о транзакции и может повторно восстановить связь между ними.

Именно эти проблемы и решает TumbleBit, о чем и напишу чуть позже.

#Privacy
​​
Interlay вручен грант от Web3 Foundation на создание моста между BTC и DOT (Polkadot)

P.S. картинку внизу сам делал😅

Interlay -Это протокол для разблокировки ликвидности для платформ DeFi через блокчейны. Такое решение взаимодействия позволит пользователям и компаниям легко использовать их предпочтительную цифровую валюту на всех блокчейн-платформах: в кредитах DeFi, на децентрализованных биржах, в качестве платежей в протоколах второго уровня или взаимодействовать с конкретными приложениями на Polkadot и Cosmos.

Web3 Foundation - это проект по созданию децентрализованного Web 3.0 интернета, в котором пользователи контролируют свои собственные данные.

Polkadot - это платформа, построенная для подключения и защиты блокчейнов, независимо от их конструкции и назначения.

Interlay разработали платформу взаимодействия под названием Xclaim для создания активов (что-то похожее на Liquid Issued Assets) , поддерживаемых один к одному в различных цепочках. Компания работает над реализацией Xclaim с 2018 года.

По словам разработчиков, Xclaim на 95% быстрее и на 65% дешевле, чем атомарные свопы, основанные на хеш-контрактах с временной блокировкой (HTLC).

В Polkadot нацелены на создание разделенного и совместимого блокчейна - конкурента Ethereum.

Для взаимодействия с внешними блокчейнами, например BTC, Polkadot использует "bridge parachains", которые обеспечивают двустороннюю совместимость BTC - Parachain.

BTC-Parachain реализует токены с поддержкой BTC; использует Xclaim для выпуска и погашения токенов 1:1 поддерживаемых Bitcoin: PolkaBTC (токен с поддержкой BTC)

Xclaim реализует протоколы для выпуска, передачи и погашения токенов с поддержкой BTC на Polkadot. Регистрирует хранилища (посредников, которые держат BTC заблокированным в сети BTC), стабилизирует залоги против колебаний цен, проводит автоматические аукционы и ликвидации провалившихся хранилищ, а также интегрируется с оракулом обменного курса.
​​
TumbleBit решение для конфиденциальных транзакций BTC

Для стека биткоина
⬇️⬇️⬇️
TumbleBit - это однонаправленный, несвязываемый платежный хаб. Протокол для анонимных платежей, полностью совместимый с протоколом Биткойн, так как реализован в виде слоя поверх сети.

В прошлом посте о CoinSwap я говорил, что TumbleBit решает вопрос с посредником, который знает о транзакции между А и Б, и потенциально может повторно восстановить связь между участниками.

Решение было предложено в 2016 году и представлено на конференции Scaling Bitcoin. После этого, другой разработчик, Николас Дориер презентовал свою имплементацию на языке C# - NTumbleBit. После чего она стала оффициальной имплементацией TumbleBit.

Платежи TumbleBit совершаются через посредника - Тамблер (Tumbler). Этот посредник не может деанонимизировать участников, украсть средства или выдать платежи сам себе.

TumbleBit позволяет совершать быстрые оффчейн платежи множеству получателей. Ничего не напоминает?? LN, Channel Factories. Платежи совершаются вне блокчейна, следовательно TumbleBit служит для масштабирования объема и скорости сети.

Участники открывают платежный канал, который депонирует BTC на депозитный адрес в блокчейн и совершают оффчейн платежи. Все как у LN, вот только с одной маленькой оговорочкой - эти платежи невозможно связать. Никто не может сказать кто перевел средства и кому их перевели.

Работает это так (по-крайней мере я так понял, да еще и долго думал писать или нет):

Для совершения неотслеживаемых транзакций используется TumbleBit, который решает криптографическую головоломку RSA.

А отправляет BTC в платежный канал с Тамблером (хабом). Средства принимаются только после того, как А представит решение головоломки. Это схема "Puzzle-Solver Protocol".

Б "заключает соглашение" с хабом. Тамблер заплатит Б после представления решения головоломки. Это схема "Puzzle-Promise Protocol".

TumbleBit знает, что решение действительно, но он не может точно определить, какую головоломку он решает, тем самым запутывая отношения между плательщиком и получателем.

TumbleBit также можно использовать как классический миксер, смешивая вместе передачу одного биткоина от Аn различных плательщиков к различным получателям Бn.

TumbleBit интегрирован с Tor, что уменьшает шанс быть раскрытым по IP, ведь пользователи подключаются к TumblerBit используя собственный адрес.

Сейчас идет поиск решений для повышения конфиденциальности сети Lightning при помощи TumblerBit.

Разработчики Stratis интегрировали TumbleBit в Breeze Wallet (пруф)

SPV HiddenWallet поддерживает решение TumbleBit (пруф). Кстати, статьи, приведенные ниже, написаны разработчиком этого кошелька и он же интегрировал Tor в TumbleBit. ☺️

В транслейте читаются
легко.

Объяснение TumbleBit Часть 1
Объяснение TumbleBit Часть 2
Объяснение TumbleBit Часть 3
GitHub NTumbleBit
Documentation

#Privacy
​​
FIBRE - Протокол для ретрансляции блоков

Для стека биткоина
⬇️⬇️⬇️
FIBRE (Fast Internet Bitcoin Relay Engine - высокоскоростная ретрансляция блоков на базе сети Интернет) - это расширение для Bitcoin Core, которое обеспечивает ретрансляцию блоков с высокой скоростью и ручным выбором равноправных узлов по UDP.

UDP – это транспортный протокол, передающий сообщения без необходимости установки соединения в IP-сети. Его можно считать оптимальным протоколом для приложений, которые рассчитаны на широкую пропускную способность и быстрый обмен.

Биткойн - это одноранговая сеть, где узлы соединяются друг с другом случайным образом. Транзакции и блоки по этой сети передаются всем узлам. Пока все узлы получат информацию о блоке или транзакции должно пройти время. Тут то и проблема...Майнеры тратят некоторое количество времени на майнинг поверх старых блоков, когда сеть уже выбрала последний блок. Информация об этом, еще не дошла до всех узлов.

FIBRE решает проблему скорости распространения блоков.

Информация о блоках между узлами передается пакетами (порциями). Узел в сети получает каждый пакет и восстанавливает блоки из данных в этих пакетах и снова отправляет другим узлам, и снова в разных пакетах. Тут есть проблема: эти пакеты могут теряться и узлам необходимо повторно передавать данные, а это влияет на скорость передачи.

Основным улучшением в FIBRE является переход от использования TCP к использованию UDP с прямой коррекцией ошибок (FEC). В чем разница между TCP и UDP?

В отличие от TCP, скорость передачи UDP предварительно закодирована (предопределена), поэтому нет медленного времени нарастания или ожидания потерянных пакетов.

FEC (Forward Error Correction) - техника помехоустойчивого кодирования и декодирования, позволяющая исправлять ошибки методом упреждения. Применяется для исправления сбоев и ошибок при передаче данных путём передачи избыточной служебной информации, на основе которой может быть восстановлено первоначальное содержание.

Использование FEC позволяет узлам восстанавливать передаваемые данные, даже если некоторые из них потерялись в пути. Дополнительные данные посылаются вдоль ретранслируемых блоков, так что принимающий узел может восстановить полные блоки, без контакта с отправляющим узлом.

FIBRE спроектирован как более децентрализованная альтернатива другим ретрансляционным сетям, например Fast Relay Network.

Ключевая особенность FIBRE в том, что он разработан как дополнение для ядра биткойна, поэтому каждый, кто управляет узлом, имеет возможность настроить свою собственную сеть.

Стоит отметить, что в 2018 году, была найдена и исправлена уязвимость в Bitcoin Core, которая позволяла нарушить работу 90% нод и нарушить ограничение на максимальное количество биткоинов в обращении. Встроенный в сеть Bitcoin Core алгоритм The Fast Internet Bitcoin Relay Engine (FIBRE) мог облегчить работу при использовании уязвимости.

#Mining
Немного новостей из мира гигантов...

IBM и Oracle работают над совместимостью своих блокчейнов на базе HLF (Hyperledger Fabric).

И у тех и у тех сети построены на базе HLF, организованы собственные консорциумы, например блокчейн-платформа TradeLens предназначена для отcлеживания таможенных грузов и оформления документов. А CargoSmart на Oracle - для разработки решений управления отгрузками. Совместимость блокчейнов позволит обмениваться информацией между сетями, что довольно удобно для клиентов этих сетей.

Hyperledger Fabric
HSM (Hardware Security Module)
Релиз Fabric Hyperledger 2.0
​​
Справедливости ради, решил написать продолжение поста про протокол ретрансляции FIBRE.

Bitcoin Relay Network или Corallo’s relay network
⬇️⬇️⬇️
Это первая широко используемая версия сети ретрансляции биткойнов созданная разработчиком Bitcoin Core Matt Corallo в 2014-2015 году.

Bitcoin Relay Network - высокоскоростная block-relay система для ретрансляции блоков с низкой задержкой (порядка 100-300мс).

Создавалась такая система для реализации двух вещей:

1) Альтернатива. Запасной вариант в случае проблем с сетью Биткойн.

2) Потенциальное снижение сетевой задержки (уменьшение времени распространения блоков)

В сети Биткойн блок добывается за 10 минут. Сетевая задержка (время пока добытый блок распространится по всей сети) составляет порядка 10-15 секунд. Следовательно майнер тратит 2% времени на добытие старого блока, в то время как мог использовать эти мощности на добытие нового.

Крупные пулы уже решили эту проблему и нашли альтернативное решение. Они не используют одноранговую сеть для передачи блоков, а создали частные сети. Как только блок найден, информация передается внутри этой частной сети остальным майнерам пула с меньшей задержкой.

А как же те ребята, не входящие в эту частную сеть? Дуля с маком им...Пул имеет преимущество каждый раз, когда майнер из пула находит блок. Крупные майнеры могут себе позволить такие частные сети, в отличие от мелких. Тут и возникает централизация...

Bitcoin Relay Network - это "hub-and-spoke network". Такая сеть соединяет каждый узел через единственное промежуточное местоположение, называемое концентратором. "Hub-and-spoke" как сетевая структура, обеспечивает гибкость в рамках транспортной системы за счет концентрации потоков.

Имеются сервера в Нью-Йорке, Сиэтле, Амстердаме, Пекине, Токио, Сингапуре, Гонконге и Новосибирске. Эта ретрансляционная сеть использует простой алгоритм сжатия. Любой Биткойн-узел может подключиться к ближайшему узлу ретрансляционной сети Corallo, а также отправлять и получать транзакции и блоки от других подключенных узлов.

Corallo’s relay network - это набор ретрансляционных узлов SPV (с упрощенной проверкой платежей).

Понятное дело, что это не самая лучшая альтернатива одноранговой сети Биткойн. Мало того что централизованна, так еще и серверы выходят из строя.

Как сказал сам Corallo: "Нет никакого соглашения об уровне обслуживания ... время от времени серверы выходят из строя, и я не сразу это исправляю... иногда я сплю или пьян.”

Факт в том, что он привлек внимание к проблеме централизации майнинга крупными майнерами. Ретрансляционная сеть уравняла шансы майнеров для добычи блоков, так как мелким майнерам не нужно тратить часть своих ресурсов для создания relay-сетей.

Лучше сделать хоть что-то, чем не делать ничего...
​​
OP_CHECKTEMPLATEVERIFY (OP_CTV) (ранее OP_SECURETHEBAG)

Для стека биткоина

Сегодня здесь будет ссылка, а не рукописный пост. Я не халтурю, а хотелось бы...😅

Статья написана автором канала @hypecoinnews и подробно описывает функции и возможности OPCTV.
⬇️⬇️⬇️
https://telegra.ph/Bitkoin-Hraniteli-OP-CHECKTEMPLATEVERIFY-03-01

Добавлю, что существуют способы использования платежных каналов, связанных с OP
CTV:

Channel Factories
Non-Interactive Channels
Increased Channel Routes
CoinJoin

Это интересное решение для увеличения пропускной способности сети и уменьшения комиссий, но есть мнения, что новый класс меток Noinput лучше решит поставленную задачу. Но об этом позже...

GitHub OP_CTV

#SmartContracts
Давно не кидал мемасиков🙃
​​
Прежде чем писать о Noinput (о котором обещал рассказать в этом посте), разберемся с SIGHASH...Пригодиться😒

Signature Hash Types
⬇️⬇️⬇️
Вспомним о транзакциях BTC.

Bitcoin транзакция — это подтверждённая подписью секция данных, которая передаётся по сети и собирается в блоки.

Юзер пытается совершить транзакцию и потратить средства. Ему надо доказать, что он авторизовал транзакцию. Для этого используются подписи которые вычисляются на основе хэша транзакций. Хэш транзакции генерируется частями транзакции. Эти части транзакций зависят от типа Sighash.

Подписи, подтверждают, что владелец PublicKey хочет потратить соответствующие монеты в конкретной транзакции. Важно, что трата происходит не всей подписанной транзакции, а ее части.

Определяет эту часть подписанной транзакции для траты такая вещь как "метка sighash (Signature Hash Types)".

SIGHASH - Это метка для подписей биткойнов, который указывает, какие части транзакции подписывает подпись. (По умолчанию используется SIGHASHALL).
SIGHASH позволяет построить контракты, в которых каждая сторона подписывает только часть договора, позволяя изменять другие части без их участия

Имеется 3 типа SIGHASH:

SIGHASHALL
- устанавливает требование, что все части транзакции (все входы и выходы, кроме входных скриптов) должны быть подписаны, а следовательно никакая из этих частей не может быть изменена. Упрощенно это выглядит так: "Я согласен вложить свои деньги, если каждый вложит свои деньги, таким способом."

SIGHASH_NONE - подписывает все входы, но не выходы. Другие пользователи могут обновлять транзакцию. Упрощенно: "Я согласен вложить свои деньги, если каждый вложит свои деньги, таким способом, но мне плевать куда они будут потрачены."

SIGHASH_SINGLE - подписываются только соответствующие входные и выходные данные (выходные данные с тем же индексным номером, что и входные данные). Упрощенно: "Я согласен вложить свои деньги, если каждый вложит свои деньги, но меня волнуют только моя часть средств."

Плюс ко всему вышесказанному, существует специальный модификатор ANYONECANPAY, который можно использовать с любым из трех типов SIGHASH. Этот модификатор игнорирует все вводы, кроме текущего. Т.е. подписывается только один вход.
​​
Новый класс меток Noinput

В продолжение поста
про OP_CHECKTEMPLATEVERIFY (OP_CTV)
⬇️⬇️⬇️
С Signature Hash Types
разобрались

Транзакция состоит из:

Input (Вход) - это ссылка на выход другой транзакции. У транзакции их может быть несколько. Ссылки суммируются и сумма BTC используется в выходе этой транзакции.

Output (Выход) - содержит информацию об отправке BTC. Их может быть несколько, тогда они делят сумму пришедшую со входа между собой.Каждый выход используется для входа следующей транзакции, только один раз. Сумма всех входов для транзакции используется на её выходах.

Разработчик Blockstream и Xapo Кристиан Декер и Таунс разработали новый вид "меток SIGHASH": SIGHASH NOINPUT, SIGHASH ANYPREVOUT,
SIGHASH ANYPREVOUTANYSCRIPT

Как я уже писал, транзакция состоит из нескольких частей информации. Входные данные разблокируют монеты, выходные данные запирают монеты с указанием будущей траты и т.д.

Добавляется подпись соответствующая PublicKey, которая доказывает, что их владелец хочет произвести трату.

Подписывать каждую часть транзакции необязательно. Можно указать какую часть транзакции подписывать при помощи SIGHASH.

Новый класс Noinput (Noinput, Anyprevout и Anyprevoutanyscript) указывает, что выходные данные будут подписаны, а входные нет. Это значит, что не подписывая входные данные, можно осуществить транзакцию, поменяв местами совместимые входы, не генерируя новую подпись.

Таких совместимых входов, чаще всего не существует. Подпись соответствует PublicKey, а следовательно определенным монетам. Замена входа на другой приведет к тому, что транзакция станет недействительной.

Но не все так противоречиво :)

Разбирая стек биткоина я писал о решении для упрощенного способа осуществления "off-chain" (внесетевых) транзакций - Eltoo.

Чтобы Bitcoin мог поддерживать Eltoo, алгоритм подписей sighash noinput должен быть внедрен в код Bitcoin.

Имея возможность менять данные на входе, в промежутке между инициацией транзакции и записи ее в блокчейн, все записи об операциях, совершенные с момента открытия платежного канала до момента его закрытия, будут удалены. Первоначальные и конечные входные данные будут отличаться.

Такое решение необходимо, так как eltoo добавляет процедуру, которая делает каждое обновленное состояние платежного канала заданным. Любое обновление канала, например, когда А совершает транзакцию Б, состоит из двух транзакций, каждая из которых хранит, и впоследствии полностью заменяет, предыдущую транзакцию.

При помощи Eltoo оба пользователя канала сохраняют копию одной и той же необработанной транзакции - "update transaction", которая представляет их средства в канале. Эту транзакцию подписывают оба пользователя и каждый из них может транслировать ее в блокчейн.

Один из пользователей решает транслировать транзакцию в сеть. Средства могут быть потрачены двумя способами:

1) Оба пользователя тратят свою долю средств до истечения временного интервала

2) Средства используются для траты на новую взаимоподписанную "update transaction".

В Eltoo операции update пронумерованы в хронологическом порядке. Update transaction 3 может тратить средства из 2, а update transaction 2 из 1, но не наоборот.

В сети Bitcoin уже возможно такое, но куда же без нюансов...Так как входные данные должны быть подписаны, update transaction должны ссылаться только на выходные данные транзакции, которая была перед ней. Т.е. 3 тратит из 2, но не из 1.

Если таких транзакций 100, а первая транслируется в сеть, то реальный баланс канала можно восстановить только транслируя все последующие транзакции. Это очень большая нагрузка на сеть.

Чтобы update transaction мог тратить средства из 2 и из 1, необходимы метки Noinput. При замене входных данных последняя update transaction всегда может быть переписана для прямой ссылки на любую другую транзакцию.

Обмен входными данными возможен. Ведь независимо от того, какая предыдущая транзакция выбрана, в платежном канале требуемые подписи всегда исходят от одних и тех же двух пользователей с одинаковыми двумя public и private keys.
Forwarded from PrimeBlock
Внимание !


Как видите со вчерашнего дня проект @Primeblock сильно вырос ! Мы собираемся развивать его и дальше.

Политика проекта насчет репостов останется неизменной - мы репостим бесплатно но только тех кого ситаем нужным и интересным для развития коммунити.

Поэтому - если у тебя есть маленький и интересный канал у тебя есть шанс чтобы тебя прочитали ведущие представители индустрии.

Прочитай политику канала, она в закрепе и напиши мне в личку, чтобы я потом тебя репостил личка - @IzhakShvarts

Прошу тех, кто поддерживает проект - репостнуть это обьявление.
​​
Simplicity - новый язык для блокчейнов, реализующий смарт-контракты в биткоине.

Для стека биткоина
⬇️⬇️⬇️
Я уже писал о других языках способных помочь деду стать более подвижным и удобным. Это обновленный язык Биткойна Tapscript для сценариев Taproot. Это MiniScript на базе языка смарт-контрактов Script.

Скриптовый язык Биткойна очень ограничен дизайном и непригоден для построения сложных смарт-контрактов. Некоторые опкоды (подробнее тут) были отключены еще в самом начале пути Биткойна.

Ethereum имеет полный гибкий и полный по Тьюрингу язык. Но и тут есть проблема...Ethereum не поддерживает статический анализ, который позволяет заранее определить какое количество вычислительных ресурсов потребуется программе. Таким образом можно отфильтровать дорогостоящие контракты и бесконечные циклы.

Simplicity был представлен разработчиком из Blockstream Russell O’Connor. Simplicity предназначен для включения в сайдчейн BlockStream и в дальнейшем, при помощи софтфорка, имплементирование его в Биткойн. Simplicity позволит завершать и расширять возможности сценариев.

Simplicity - это низкоуровневый язык основанный на алгоритме последовательного вычисления для выполнения смарт-контрактов. Это типизированный функциональный язык программирования, использующий комбинаторы. Он может быть использован как основа для других языков, более высокого уровня, так и для улучшения существующих (Bitcoin Script, EVM Ethereum).

Simplicity - это не полный по Тьюрингу, обеспечивающий ограничение рекурсивного вызова и защиту от бесконечных циклов язык. Он позволяет проводить статический анализ кода (эффективно ограничивать объем вычислительных ресурсов, необходимый программе до ее выполнения). Имеет встроенную поддержку мерклизованных абстрактных синтаксических деревьев (MAST)

Разработка пакетов SDK (Software Developer Kit) первый шаг, по развертыванию языка в проекте Elements от Blockstream.

Software Development Kit (комплект программ для разработки) - это набор необходимых программных продуктов (библиотек, скриптов), предназначенный для облегчения процесса разработки и тестирования кода для конкретных программных платформ.

Simplicity в будущем может быть интегрирован с Ivy (язык более высокого уровня, позволяющий писать смарт-контракты для протокола Bitcoin). О нем мы тоже поговорим позже, так как я собираюсь разобрать стек до конца.😇

WhitePaper
Site

#SmartContracts